This invention relates to data storage systems and more particularly, to a system and method for providing enhanced data storage system performance by de-centralizing data integrity value calculation.
During recent years, computer scientists and data processing professionals, particularly those involved with the development of data storage systems, have developed guideline and benchmarks for data storage systems and data storage system data integrity or reliability. These guidelines or benchmarks have evolved as multiple xe2x80x9clevelsxe2x80x9d of data integrity.
The most common of these levels or benchmarks is most commonly referred to as xe2x80x9cRAIDxe2x80x9d (Redundant Array of Inexpensive Disks). The various xe2x80x9clevelsxe2x80x9d of RAID data protection or integrity are numbered 0 through 6 with RAID level 0 indicating that a particular data storage system has no mechanism providing data integrity or redundancy, while a RAID level 6 system is generally thought to provide the highest level of data protection currently developed.
As manufacturers of data storage systems develop new products, and as users of data storage systems evaluate their needs and specify the product(s) they wish to purchase, the manufacturing or purchasing specifications may include a reference to a RAID level or levels that a particular piece of equipment must meet or a given purchaser wishes to purchase.
Although the various RAID levels are designed to provide different levels of data integrity or protection, the development of the various levels. of RAID and other similar standards and protocols have often ignored system throughput by creating bottlenecks in one or more pieces of hardware or software in order to implement the desired degree of data integrity or redundancy. Additionally, RAID as well as other standards and protocols have not accounted and allowed for a user to upgrade this level of data protection by subsequently changing from one level of protection to another. In some instances, the data integrity or redundancy protocol or standard imposes a bottleneck on data throughput. For example, RAID level 5, requires that a central controller perform all of the data integrity checking. Thus, no matter how fast the data can be transferred between a host or other source of data and a data storage system controller, or a data storage device such as a disk drive and data storage device controller, all the data integrity value computations (such as parity, CRC, etc.) are performed at the controller level.
Further, in those situations where a particular data protocol or standard, such as RAID level 5, is established and followed, if more than one data storage device fails, all data in the group will be lost given that data is striped across multiple drives.
Accordingly, the present features a system and method for storing data on a data storage device which is part of a data storage system which maintains a high level of data integrity while simultaneously providing an improved level of performance. An improved level of performance is achieved by minimizing the bottleneck of data processing in one centralized location, which allows the user to easily, quickly and very simply migrate previously stored data from one level of data protection to another level of data protection. The system enhances data integrity level in a short period of time and transparent to the user.
This invention features a data storage system that improves data integrity value calculation performance and a method for accomplishing the same. The invention includes a data storage system which receives data to be stored on at least a first data storage device. The first data storage device includes a data integrity value generator, which is responsive to a received data element and to a data element previously stored on the data storage device, for calculating a data integrity value.
In the preferred embodiment, the data integrity value generator includes an exclusive-or generator. The exclusive-or generator calculates a data integrity value in response to a received data element to be stored at a predetermined data storage device storage location on the data storage device, and a data. element previously stored at the predetermined data storage device data storage location on the data storage device.
Once the data integrity value is calculated, the data integrity value can be stored on the data storage device itself, or provided to another data storage device for storing, in which case only the received data element is stored on the first data storage device.
The system may include a plurality of data storage devices each having a data integrity value generator. The plurality of data storage devices may be coupled to a data storage device controller which receives the data elements to be stored on the data storage system from a source of data such as one or more host computers or a data network.
The present invention also includes a method of computing a data integrity value for data to be stored on the data storage system including the steps of providing at least a first data storage device having a data integrity value generator. The first data storage device receives at least one data element, and responsive to at least the received data element, calculates the data integrity value for that data element. The data element includes actual data to be written to the data storage device, such as a disk drive, or a previously computed data integrity value computed by another data storage device""s data integrity value generator.
A plurality of data storage devices may be coupled together or to a data storage device controller, although each of the plurality of data storage devices includes a data integrity value generator.
The present invention also features a method of re-building or re-constructing data determined to be faulty or defective.